import request from '@/utils/request'

// 用户相关API
export const userApi = {
  // 登录
  login(data) {
    return request({
      url: '/user/login',
      method: 'post',
      data
    })
  },
  
  // 注销
  logout() {
    return request({
      url: '/user/logout',
      method: 'post'
    })
  },
  
  // 检查登录状态
  checkLogin() {
    return request({
      url: '/user/login/check',
      method: 'get'
    })
  },
  
  // 获取登录验证方式
  getLoginVerifyMode(username) {
    return request({
      url: '/user/login/verify-mode',
      method: 'get',
      params: { username }
    })
  },
  
  // 获取图形验证码
  getCaptcha() {
    return request({
      url: '/user/login/captcha',
      method: 'get'
    })
  },
  
  // 修改密码
  updatePassword(data) {
    return request({
      url: '/user/updatePwd',
      method: 'post',
      data
    })
  }
}

// 存储源相关API
export const storageApi = {
  // 获取存储源列表（前台）
  getStorageList() {
    return request({
      url: '/storage/list',
      method: 'get'
    })
  },
  
  // 获取文件列表
  getFileList(data) {
    return request({
      url: '/storage/files',
      method: 'post',
      data
    })
  },
  
  // 获取单个文件信息
  getFileItem(data) {
    return request({
      url: '/storage/file/item',
      method: 'post',
      data
    })
  },
  
  // 获取存储源配置
  getStorageConfig(data) {
    return request({
      url: '/site/config/storage',
      method: 'post',
      data
    })
  }
}

// 站点相关API
export const siteApi = {
  // 获取全局配置
  getGlobalConfig() {
    return request({
      url: '/site/config/global',
      method: 'get'
    })
  },
  
  // 获取用户根路径
  getUserRootPath(storageKey) {
    return request({
      url: `/site/config/userRootPath/${storageKey}`,
      method: 'get'
    })
  }
}

// 后台管理API
export const adminApi = {
  // 获取所有存储源列表
  getStorageList() {
    return request({
      url: '/admin/storages',
      method: 'get'
    })
  },
  
  // 获取存储源详情
  getStorageDetail(storageId) {
    return request({
      url: `/admin/storage/${storageId}`,
      method: 'get'
    })
  },
  
  // 保存存储源
  saveStorage(data) {
    return request({
      url: '/admin/storage',
      method: 'post',
      data
    })
  },
  
  // 删除存储源
  deleteStorage(storageId) {
    return request({
      url: `/admin/storage/${storageId}`,
      method: 'delete'
    })
  },
  
  // 启用存储源
  enableStorage(storageId) {
    return request({
      url: `/admin/storage/${storageId}/enable`,
      method: 'post'
    })
  },
  
  // 停用存储源
  disableStorage(storageId) {
    return request({
      url: `/admin/storage/${storageId}/disable`,
      method: 'post'
    })
  },
  
  // 更新存储源顺序
  updateStorageSort(data) {
    return request({
      url: '/admin/storage/sort',
      method: 'post',
      data
    })
  },
  
  // 获取用户列表
  getUserList(params) {
    return request({
      url: '/admin/user/list',
      method: 'get',
      params
    })
  },
  
  // 保存或更新用户
  saveOrUpdateUser(data) {
    return request({
      url: '/admin/user/saveOrUpdate',
      method: 'post',
      data
    })
  },
  
  // 删除用户
  deleteUser(userId) {
    return request({
      url: `/admin/user/delete/${userId}`,
      method: 'delete'
    })
  },
  
  // 启用用户
  enableUser(userId) {
    return request({
      url: `/admin/user/enable/${userId}`,
      method: 'post'
    })
  },
  
  // 禁用用户
  disableUser(userId) {
    return request({
      url: `/admin/user/disable/${userId}`,
      method: 'post'
    })
  }
}

